home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-25 | 8.0 KB | 293 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: DrawCmds.h
- // Release Version: $ ODF 1 $
- //
- // Author: Mary Boetcher
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef DRAWCMDS_H
- #define DRAWCMDS_H
-
- // ----- FrameWork Includes -----
-
- #ifndef FWCMD_H
- #include "FWCmd.h"
- #endif
-
- // ----- OS Includes -----
-
- #ifndef FWCOLOR_H
- #include "FWColor.h"
- #endif
-
- #ifndef FWPAT_H
- #include "FWPat.h"
- #endif
-
- #ifndef FWRECT_H
- #include "FWRect.h"
- #endif
-
-
- //========================================================================================
- // Forward Declarations
- //========================================================================================
-
- class FW_CFrame;
- class CBaseShape;
- class CDrawPart;
- class CDrawFrame;
- class CDrawSelection;
- class CDrawContent;
-
- //========================================================================================
- // Constants - Command numbers
- //========================================================================================
-
- const ODCommandID cDrawShapeCommand = 3000;
- const ODCommandID cChangeFillColor = 3001;
- const ODCommandID cChangeFillPattern = 3002;
- const ODCommandID cChangeFrameColor = 3003;
- const ODCommandID cChangeFramePattern = 3004;
- const ODCommandID cChangeRenderVerb = 3005;
- const ODCommandID cResizeCommand = 3006;
- const ODCommandID cChangePenSize = 3007;
-
- //========================================================================================
- // class CDrawShapeCommand - Draw a new shape and add it to the document
- //========================================================================================
-
- class CDrawShapeCommand : public FW_CCommand
- {
- public:
-
- FW_DECLARE_AUTO(CDrawShapeCommand)
-
- CDrawShapeCommand(Environment* ev,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection,
- CBaseShape* newShape);
-
- virtual ~ CDrawShapeCommand();
-
- // --- Command overrides
- virtual void DoIt(Environment* ev); // Override
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
- virtual void CommitUndone(Environment* ev); // Override
-
- protected:
- CDrawContent* fNewContent;
- CDrawPart* fDrawPart;
- CDrawSelection* fDrawSelection;
- };
-
- //========================================================================================
- // class CResizeShapeCommand - Change size of selected shapes
- //========================================================================================
-
- class CResizeShapeCommand : public FW_CCommand
- {
- public:
-
- FW_DECLARE_AUTO(CResizeShapeCommand)
-
- CResizeShapeCommand(Environment* ev,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection,
- const FW_CRect& srcRect,
- const FW_CRect& dstRect);
-
- virtual ~ CResizeShapeCommand();
-
- // --- Command overrides
- virtual void DoIt(Environment* ev); // Override
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
-
- private:
- void MapShapes(Environment* ev, const FW_CRect& srcRect, const FW_CRect& dstRect);
- void Redraw(Environment* ev, ODDoneState doneState);
-
- protected:
- CDrawPart* fDrawPart;
- CDrawSelection* fDrawSelection;
- FW_CRect fSourceRect;
- FW_CRect fDestRect;
- ODShape* fUpdateShape;
- CDrawContent* fChangedContent;
- };
-
- //========================================================================================
- // class CChangeShapeCommand - Change shape attributes: color, pattern, render verb
- //========================================================================================
-
- class CChangeShapeCommand : public FW_CCommand
- {
- public:
-
- FW_DECLARE_AUTO(CChangeShapeCommand)
-
- CChangeShapeCommand(Environment* ev,
- ODCommandID id,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection);
-
- virtual ~ CChangeShapeCommand();
-
- // --- Command overrides
- virtual void DoIt(Environment* ev); // Override
- virtual void UndoIt(Environment* ev); // Override
- virtual void RedoIt(Environment* ev); // Override
-
- protected:
-
- // --- Must be overridden
- virtual void DoChange(Environment* ev) = 0;
- virtual void UndoShape(Environment* ev, CBaseShape* shape, unsigned long index) = 0;
-
- private:
- void UpdateDisplay(Environment* ev);
-
- protected:
- CDrawPart* fDrawPart;
- CDrawSelection* fDrawSelection;
- CDrawContent* fChangedContent;
- };
-
- //========================================================================================
- // CChangeColorCommand
- //========================================================================================
-
- class CChangeColorCommand : public CChangeShapeCommand
- {
- public:
-
- FW_DECLARE_AUTO(CChangeColorCommand)
-
- CChangeColorCommand(Environment* ev,
- ODCommandID commandID,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection,
- const FW_CColor& newColor);
-
- virtual ~ CChangeColorCommand();
-
- // --- CChangeShapeCommand overrides
- protected:
- virtual void DoChange(Environment* ev); // Override
- virtual void UndoShape(Environment* ev, CBaseShape* shape, unsigned long index); // Override
- public:
- virtual void SaveUndoState(Environment* ev); // Override
-
- protected:
- FW_CColor* fOldColors; // array of FW_CColor
- FW_CColor fNewColor;
- FW_Boolean fIsFill;
- };
-
- //========================================================================================
- // CChangePatternCommand
- //========================================================================================
-
- class CChangePatternCommand : public CChangeShapeCommand
- {
- public:
-
- FW_DECLARE_AUTO(CChangePatternCommand)
-
- CChangePatternCommand(Environment* ev,
- ODCommandID commandID,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection,
- const FW_CPattern& newPattern);
-
- virtual ~ CChangePatternCommand();
-
- // --- CChangeShapeCommand overrides
- protected:
- virtual void DoChange(Environment* ev); // Override
- virtual void UndoShape(Environment* ev, CBaseShape* shape, unsigned long index); // Override
-
- public:
- virtual void SaveUndoState(Environment* ev); // Override
-
- protected:
- FW_CPattern** fOldPatterns; // array of FW_CPattern
- FW_CPattern fNewPattern;
- unsigned short fCount;
- FW_Boolean fIsFill;
- };
-
- //========================================================================================
- // CChangeRenderVerbCommand
- //========================================================================================
-
- class CChangeRenderVerbCommand : public CChangeShapeCommand
- {
- public:
-
- FW_DECLARE_AUTO(CChangeRenderVerbCommand)
-
- CChangeRenderVerbCommand(Environment* ev,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection,
- unsigned short newRenderVerb);
-
- virtual ~ CChangeRenderVerbCommand();
-
- // --- CChangeShapeCommand overrides
- protected:
- virtual void DoChange(Environment* ev); // Override
- virtual void UndoShape(Environment* ev, CBaseShape* shape, unsigned long index); // Override
- public:
- virtual void SaveUndoState(Environment* ev); // Override
-
- private:
- unsigned short fNewRenderVerb;
- unsigned short* fOldRenderVerbs; // array of unsigned short
- };
-
- //========================================================================================
- // CChangePenSizeCommand
- //========================================================================================
-
- class CChangePenSizeCommand : public CChangeShapeCommand
- {
- public:
-
- FW_DECLARE_AUTO(CChangePenSizeCommand)
-
- CChangePenSizeCommand(Environment* ev,
- CDrawPart* part,
- FW_CFrame* frame,
- CDrawSelection* selection,
- FW_Fixed newPenSize);
-
- virtual ~ CChangePenSizeCommand();
-
- // --- CChangeShapeCommand overrides
- protected:
- virtual void DoChange(Environment* ev); // Override
- virtual void UndoShape(Environment* ev, CBaseShape* shape, unsigned long index); // Override
- public:
- virtual void SaveUndoState(Environment* ev); // Override
-
- private:
- FW_Fixed fNewPenSize;
- FW_Fixed* fOldPenSizes; // array of FW_Fixed
- };
-
-
- #endif
-